package com.anrongtec.zcpt.tab04;

import android.content.DialogInterface;
import android.os.Bundle;
import android.support.v7.widget.AppCompatButton;
import android.support.v7.widget.Toolbar;
import android.text.TextUtils;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.EditText;

import com.anrongtec.zcpt.R;
import com.anrongtec.zcpt.base.BaseActivity;
import com.anrongtec.zcpt.callback.StoreStringCallBack;
import com.anrongtec.zcpt.constant.PreferenceKey;
import com.anrongtec.zcpt.interfaces.HttpUtil;
import com.anrongtec.zcpt.interfaces.URLConstants;
import com.anrongtec.zcpt.interfaces.module.JsonDataRestult;
import com.anrongtec.zcpt.util.GsonUtil;
import com.anrongtec.zcpt.util.LogUtil;
import com.anrongtec.zcpt.util.RSAUtils;
import com.anrongtec.zcpt.util.Util;
import com.art.base.util.DialogUtil;
import com.art.base.util.PreferenceUtils;
import com.art.base.util.ToastShow;
import com.google.gson.reflect.TypeToken;

import okhttp3.Call;
import okhttp3.Request;
import okhttp3.Response;

/**
 * 意见反馈界面
 * 
 * @author chenjiaotuo
 *
 */
public class SuggestionFeedbackActivity extends BaseActivity implements OnClickListener {
	/** 编辑的文字 */
	private EditText et_content;
	
	private String content;
	
	private Toolbar toolbar;
	private AppCompatButton button;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setTitleShow(false);
		setContentView(R.layout.activity_suggestion_feedback);
		initViews();
	}

	@Override
	protected void initViews() {
		initToolBar();
		et_content = (EditText) findViewById(R.id.et_suggestion_feedback_content);
	}

	/**
	 * 初始化toolbar
	 */
	private void initToolBar() {
		toolbar = (Toolbar) findViewById(R.id.toolbar);
		toolbar.setTitle("意见反馈");
		setSupportActionBar(toolbar);
		toolbar.setNavigationOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				finish();
			}
		});
		getSupportActionBar().setHomeButtonEnabled(true); //这个小于4.0版本的默认值为true的。但是在4.0及其以上是false，该方法的作用：决定左上角的图标是否可以点击。没有向左的小图标。 true 图标可以点击  false 不可以点击。
		getSupportActionBar().setDisplayHomeAsUpEnabled(true); // 给左上角图标的左边加上一个返回的图标 。对应ActionBar.DISPLAY_HOME_AS_UP
//		getSupportActionBar().setDisplayShowHomeEnabled(true); //使左上角图标是否显示，如果设成false，则没有程序图标，仅仅就个标题，否则，显示应用程序图标，对应id为android.R.id.home，对应ActionBar.DISPLAY_SHOW_HOME
		//				getSupportActionBar().setDisplayShowCustomEnabled(true); // 使自定义的普通View能在title栏显示，即actionBar.setCustomView能起作用，对应ActionBar.DISPLAY_SHOW_CUSTOM
	
		
		button = (AppCompatButton) findViewById(R.id.btn_toolbar_button);
		button.setOnClickListener(this);
	}


	@Override
	public void onClick(View v) {
		switch (v.getId()) {
		case R.id.btn_toolbar_button:
			// 提交反馈信息
			if (checkInfo()) {
				submit();
			}
			break;

		default:
			break;
		}
	}
	
	/**
	 * 提交反馈信息
	 */
	private void submit() {
		RSAUtils rsa = RSAUtils.create();
		String encodeContent = rsa.encodeByPublicKey(content, RSAUtils.pubKey);
		
		String json = GsonUtil.toFeedbackJson(Util.getVersionCode(this), encodeContent);
		HttpUtil.post(json, new StoreStringCallBack(this) {
			@Override
			public void onResponse(boolean arg0, String arg1, Request arg2, Response arg3) {
				super.onResponse(arg0, arg1, arg2, arg3);
                LogUtil.e(arg1);
				JsonDataRestult<Object> result = GsonUtil.decode(arg1, new TypeToken<JsonDataRestult<Object>>(){}.getType());
				if (URLConstants.RetCode.SUCCESS.equals(result.getRetCode())) {
					
					//TODO 上报登出
					String accountId = PreferenceUtils.getInstance(SuggestionFeedbackActivity.this).getString(PreferenceKey.ACCOUNT_ID);
//					WLData.getInstance().reportEvent(accountId, Events.APP_FEEDBACK);
					
					DialogUtil.createAlertDialog(SuggestionFeedbackActivity.this, "反馈成功", 0, "消息反馈成功，点击确定返回上一页面。", new DialogInterface.OnClickListener() {
						@Override
						public void onClick(DialogInterface dialog, int which) {	
							finish();
						}
					});
				}else {
					ToastShow.shortMessage(result.getRetMsg());
				}
			}
			
			@Override
			public void onError(boolean isFromCache, Call call,
					Response response, Exception e) {
				if (response == null) {
					ToastShow.shortMessage(getString(R.string.alert_failed_connect));
				}
				super.onError(isFromCache, call, response, e);
			}
		});
	}

	/**
	 * 检查信息输入格式
	 * @return
	 */
	private boolean checkInfo() {
		content = et_content.getText().toString().trim();
		if (TextUtils.isEmpty(content)) {
			ToastShow.shortMessage(this, "反馈信息不能为空");
			return false;
		}
		return true;
	}

}
